//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//#include<stdlib.h>
//#include<string.h>
//struct stu {
//	char name[20];
//	int age;
//};
//void print_arr(int* arr, int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	printf("\n");
//}
//int cmp_int(const void* p1,const void* p2)
//{
//	return *(int*)p2 - *(int*)p1;
//}
//void test()
//{
//	int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	qsort(arr,sz,sizeof(arr[0]),cmp_int);
//	print_arr(arr,sz);
//}
//void print_s(struct stu* s, int sz)
//{
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%s %d\n", s[i].name,s[i].age);
//	}
//}
//int cmp_by_name(const void* p1, const void* p2)
//{
//	return strcmp(((struct stu*)p1)->name,((struct stu*)p2)->name);
//}
//int cmp_by_age(const void* e1, const void* e2)
//{
//	return ((struct stu*)e1)->age - ((struct stu*)e2)->age;
//}
//void test2()
//{
//	struct stu s[3] = { {"zhangsan",18},{"lisi",20},{"laowu",30} };
//	int sz = sizeof(s) / sizeof(s[0]);
//	qsort(s, sz, sizeof(s[0]), cmp_by_age);
//	print_s(s,sz);
//}
//void test3()
//{
//	struct stu s[3] = { {"zhangsan",18},{"lisi",20},{"laowu",30} };
//	int sz = sizeof(s) / sizeof(s[0]);
//	qsort(s, sz, sizeof(s[0]), cmp_by_name);
//	print_s(s, sz);
//}
//
//int main()
//{
//	test();
//	test2();
//	test3();
//	return 0;
//}
